home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / e / ddmoduls.lha / dd_Modules / dd_messages / dd_locale_messages.e next >
Text File  |  1995-08-15  |  2KB  |  95 lines

  1. -> FOLD OPTS
  2. OPT MODULE
  3. -> ENDFOLD
  4. -> FOLD MODULES
  5. MODULE '*dd_messages'
  6.  
  7. MODULE 'utility/tagitem'
  8. MODULE 'locale','libraries/locale'
  9. -> ENDFOLD
  10. -> FOLD DEFS
  11.  
  12. -> private global librarybase
  13. DEF localebase
  14.  
  15. -> ENDFOLD
  16. -> FOLD OBJECTS
  17. -> localemessages is a child of messages
  18. -> and can be used instead to support localization
  19. EXPORT OBJECT localemessages OF messages
  20. PRIVATE
  21.   /**** UNNECESSARY
  22.   locale:LONG
  23.   ****/
  24.   catalog:LONG
  25. ENDOBJECT
  26. -> ENDFOLD
  27.  
  28. -> FOLD new
  29. -> redefined constructor for locale messages
  30. EXPORT PROC new() OF localemessages
  31.  
  32.   DEF messagenum
  33.  
  34.   -> invokes parent class constructor to init built-in messages
  35.   SUPER self.new()
  36.  
  37.   -> locale library present?
  38.   IF localebase:=OpenLibrary('locale.library',38)
  39.  
  40.     /**** UNNECESSARY
  41.     -> open locale structure
  42.     locale:=OpenLocale(NIL)
  43.     self.locale:=locale
  44.     ****/
  45.  
  46.     -> open message catalog
  47.     self.catalog:=OpenCatalogA(NIL,'InfraRexxEditor.catalog',[OC_VERSION,4,TAG_DONE])
  48.  
  49.     -> catalog opened?
  50.     IF self.catalog
  51.  
  52.       -> read catalog messages
  53.       FOR messagenum:=0 TO NUM_MSG-1
  54.  
  55.         -> use localized messages, for those present
  56.         self.set(messagenum,GetCatalogStr(self.catalog,messagenum,self.get(messagenum)))
  57.  
  58.       ENDFOR
  59.  
  60.     ELSEIF IoErr()=0
  61.         -> <built-in strings reflect prefered language>
  62.  
  63.         -> localize built-ins
  64.         self.set(1,'%lU times per second')
  65.     ENDIF
  66.   ENDIF
  67. ENDPROC
  68. -> ENDFOLD
  69. -> FOLD end
  70. -> redefined destructor
  71. EXPORT PROC end() OF localemessages
  72.  
  73.   /**** UNNECESSSARY
  74.   IF self.locale
  75.     CloseLocale(self.locale)
  76.     self.locale:=NIL
  77.   ENDIF
  78.   ****/
  79.  
  80.   IF self.catalog
  81.     CloseCatalog(self.catalog)
  82.     self.catalog:=NIL
  83.   ENDIF
  84.  
  85.   IF localebase
  86.     CloseLibrary(localebase)
  87.     localebase:=NIL
  88.   ENDIF
  89.  
  90.   -> invoke super destructor
  91.   SUPER self.end()
  92.  
  93. ENDPROC
  94. -> ENDFOLD
  95.